package xyz.eden.cloud.common.core.json;

import com.fasterxml.jackson.core.type.TypeReference;

import java.util.List;
import java.util.Map;

/**
 * JsonTool
 */
public class JsonTool {

    public static <T> List<T> toJavaList(String jsonStr, Class<T> clazz) {
        return JsonToolByJackson.toJavaList(jsonStr, clazz);
    }

    public static <T> T toJavaObj(String jsonStr, TypeReference<T> typeRef) {
        return JsonToolByJackson.toJavaObj(jsonStr, typeRef);
    }

    public static <T> List<T> toJavaListWithException(String jsonStr, Class<T> clazz) throws Exception {
        return JsonToolByJackson.toJavaListWithException(jsonStr, clazz);
    }


    public static <T> T toJavaObj(String jsonStr, Class<T> clazz) {
        return JsonToolByJackson.toJavaObj(jsonStr, clazz);
    }

    public static <T> T jsonToObjectThrowException(String jsonStr, Class<T> clazz) throws Exception {
        return JsonToolByJackson.jsonToObjectThrowException(jsonStr, clazz);
    }

    public static String toJsonStr(Object obj, boolean containNull ) {
        return JsonToolByJackson.toJsonStr(obj, containNull);
    }

    public static String toJsonStr(Object obj) {
        return JsonToolByJackson.toJsonStr(obj);
    }

    public static <V> Map<String, V> toJavaMap(String json) {
        return JsonToolByJackson.toJavaMap(json);
    }
}
